package com.buka.book.controller;

import com.buka.book.entity.Book;
import com.buka.book.service.BookService;
import com.buka.common.Result;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/list")
public class ListService extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //书籍列表，通常使用ajax返回数据，要将结果集封装成json格式返回给前端
        List<Book> bookList = new BookService().bookList();

        //直接转换 结果示例
        /**java 中的集合  就是js 中的数组
         * [
         *   {'id':1,'bookName':'西游记','count':10,'createTime':'2025-06-10 00:00:00'},
         *   {'id':1,'bookName':'三国演义','count':10,'createTime':'2025-06-10 00:00:00'},
         *   {'id':1,'bookName':'红楼梦','count':10,'createTime':'2025-06-10 00:00:00'}
         * ]
         */
        if(null == bookList || bookList.isEmpty()){
            //返回空数据，告诉前端没有数据
            //没查到数据是因为数据库没有，还是参数不对
            String resultStr = Result.error("数据为空");
            resp.getWriter().write(resultStr);
        }else{

            /***
             *    {
             *        'code':200,
             *        'msg':'',
             *        'data': [
             *                  {'id':1,'bookName':'西游记','count':10,'createTime':'2025-06-10 00:00:00'},
             *                  {'id':1,'bookName':'三国演义','count':10,'createTime':'2025-06-10 00:00:00'},
             *                  {'id':1,'bookName':'红楼梦','count':10,'createTime':'2025-06-10 00:00:00'}
             *                ]
             *
             *    }
             */

            //Result.success  这个方式是帮我们创建一个resulet对象，
            //在构造对象的时候，传递了一个booklist 集合，作为result对象的data属性的值
            //Result.success 最终返回的是 result对象的json字符串
            String success = Result.success(bookList);
            resp.getWriter().write(success);
        }


    }
}
